package com.tx.service;

import com.tx.entity.FileInfo;
import com.tx.entity.Page;
import com.tx.entity.Result;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: tcx
 * @description: 文件信息业务层接口
 * @Date: 2019/11/10
 **/
public interface FileInfoService {
    /* *
     * @description:  添加文件
     * @author tcx
     * @date 2019/11/10
     * @param fileInfo
     * @return void
     */
    Integer add(FileInfo fileInfo);
    /* *
     * @description: 修改文件信息
     * @author tcx
     * @date 2019/11/10
     * @param fileInfo
     * @return void
     */
    Integer edit(FileInfo fileInfo);
    /* *
     * @description: 删除文件
     * @author tcx
     * @date 2019/11/10
     * @param fId
     * @return void
     */
    Integer remove(Integer fId);
    /* *
     * @description: 根据文件id 获取文件信息
     * @author tcx
     * @date 2019/11/10
     * @param fId
     * @return com.tx.entity.FileInfo
     */
    FileInfo get(Integer fId);
    /* *
     * @description: 获取所有文件
     * @author tcx
     * @date 2019/11/10
     * @param
     * @return java.util.List<com.tx.entity.FileInfo
     */
    List<FileInfo> getAll();
    /* *
     * @description:  根据用户id查询用户上传的文件
     * @author tcx
     * @date 2019/11/11
     * @param uId
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    Result getFileByUser(Integer uId,Page page);
    /* *
     * @description:查询用户文件总数
     * @author tcx
     * @date 2019/11/11
     * @param uId
     * @return java.lang.Integer
     */
    Integer getFileByUserCount(Integer uId);
    /* *
     * @description:  根据关键字分页查询文件
     * @author tcx
     * @date 2019/11/13
     * @param key
     * @param beginIndex
     * @param everyPage
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    Result getKeyPage(String key, Page page);
    /* *
     * @description:  分页查询所有文件，按时间排序
     * @author tcx
     * @date 2019/11/13
     * @param page
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    Result getFileByPage(Page page);
    /* *
     * @description:  查询用户最新十个文件
     * @author tcx
     * @date 2019/11/16
     * @param uId
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    List<FileInfo> getUserNewFile(Integer uId);
    /* *
     * @description: 查询所有文件总数
     * @author tcx
     * @date 2020/1/13
     * @param
     * @return int
     */
    int getFileCount();

    Integer getTotal(Map<String,Object> map);

    List<FileInfo> list(Map<String,Object> map);
}
